Java中十六进制字符串转十进制数字并输出

您所在的位置:网站首页 java 开头 Java中十六进制字符串转十进制数字并输出

Java中十六进制字符串转十进制数字并输出

2023-06-05 01:20| 来源: 网络整理| 查看: 265

首先,java中16进制是以0x开头的。

现在有一个问题:

 

 如何将它转为10进制输出呢?

 16进制中a-10 ,b-11....f-15

首先要明白16进制是如何转为10进制的:从右向左,字母或者数字依次乘以16的幂(幂是从0开始)

这是就有人会说:那不好办?直接来一个for循环,遍历字符串,从前往后,依次获取,把字符强转为int型 减去相应的值,(A对应的ASCII值为65,a对应的ascii值为97)再乘以幂不就行了?

不好意思。

如果有小写,阁下该如何应对呢?

如果数字穿插,阁下又该如何应对呢?

 

 如果阁下处理字母时,还判断是否为大小写,我只能说,阁下有些多此一举了。

为何不全部转为大写,或者全部转为小写呢?

 我这里全部转为大写了。

然后除了字符串开头的"0x",其余的都转为int,是不是就行了?

我之前说过,不只有字母,还有数字哩。

那么,小编在这里提问大家一个问题:

请问输出结果是什么?

 说0的话,那可就g了。

正确答案:

那么,也就是说,我们要判断,里面的字符到底是字母,还是数字。 

怎么判断呢?

用Ascii值,我觉得可以。

这个判断是否为字母:

这个 判断是否为数字:

因为16进制中A对应10,而Ascii中A对应65,所以字母强转为整型要减55. 字符0对应的ASCII为48,所以数字强转为整型要减48.

 接下来,我们要乘16的幂。

这时就用到了Math.pow()函数。

pow()中有两个参数。第一个为底数,第二个参数为指数。

但是for循环里面是从最后一位开始判断的,而幂是从0开始的。所以我们要再定义一个变量j,从0开始递增。

代码如下:

总代码:

 输出结果:

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3